Digital communication systems are known to comprise base stations and repeaters in communication with a plurality of communication units. To this end, base stations and repeaters transmit and receive digital voice messages, typically over a radio frequency (RF) communication link. In the case of base stations, messages from consoles may also be transmitted and received over a wireline communication link. Both RF and wireline communication links are known to induce bit errors in transmitted digital voice messages. Indeed, high error rates can be expected over RF links, while significant error rates on wireline links, caused, for example, by switching devices, are also known.
Regardless of the source of error, digital voice messages are typically forward error correction encoded. Forward error correction techniques, often referred to as error correction codes, allow errors to be detected, and even corrected, and can be divided into two categories: perfect codes and non-perfect code, as discussed below. Using these error correction techniques, a message is divided into small portions. Each portion is encoded to produce a codeword, which codewords are transmitted to a target over a given communication link. At the target, the codewords are decoded and most transmission errors induced by the communication link are detected and corrected. The resulting decoded portions may then be processed to reconstruct the original message. The reconstructed message can then be re-encoded for transmission over yet another communication link. This process of repetitive encoding and decoding is continued until the message has reached its final destination.
For example, a message from a console to a communication unit may have to pass through a base station and a repeater before reaching the communication unit. When transmitted over each link (i.e., between the console and base station, base station and repeater, repeater and communication unit), the message undergoes the encoding/decoding procedure described above.
However, error rates on a communication link are often high enough that the error correction technique used is unable to correct all the errors in a particular portion of a message. An uncorrectable portion of a message is typically regarded as unusable. Nevertheless, if synchronization of the message is to be maintained, as is typically the case, a substitute for the uncorrectable portion, typically in the form of a special codeword not otherwise used, indicating the presence of the uncorrectable portion, must be sent to the target of the message. In this manner, the target of the message knows that the portion represented by the special codeword is irreparably corrupted and may execute procedures that mitigate the effect of the uncorrectable portion (error mitigation).
This solution is possible only if codewords exist that would not normally occur as a result of the encoding process, i.e., unused codewords. Error correction codes having unused codewords are often referred to as non-perfect codes. Non-perfect codes can be described as those codes in which a subset of codewords, less than all possible codewords, are valid (i.e., correctable). Conversely, in a perfect code, all possible codewords are valid. Thus, perfect codes used to produce binary codewords consisting of n-information bits would result in 2.sup.n valid codewords. Non-perfect codes resulting in binary codewords n-bits in length would have no more than (2.sup.n -1) valid codewords. Therefore perfect codes do not contain unique and valid codewords that could otherwise be used to inform the target of uncorrectable codewords.
Examples of forward error correction encoders and decoders using perfect error correction codes are shown in FIGS. 1 and 2. In particular, the transmitter 100 and receiver 200 are in compliance with standards promulgated by the Associated Public-Safety Communication Officers (APCO), i.e., the so-called APCO-25 Common Air Interface (CAI) standard. A data input device 101 provides a primary input vector u0 and a set of secondary input vectors u1-u7. As shown, the set of input vectors u0-u7 are error correction encoded using a primary 102 and secondary encoder 103. The primary 102 and secondary encoder 103 each implement a perfect code to produce a primary encoded vector cO and a secondary set of encoded vectors v1-v6. A modulator 104 is also provided in which the primary input vector u0 is used to modulate, as known in the art, the secondary set of encoded vectors v1-v6. The resulting secondary set of modulated vectors c1-c6 and the primary encoded vector c0 are then interleaved, as known in the art, by an interleaver 105 prior to transmission. If it is known that any portion of the set of input vectors u0-u7 is irreparably corrupted, the use of perfect codes 102-103 does not allow the transmitter 100 to send an unused codeword, which would otherwise be detectable by the receiver 200, to indicate the corrupted condition.
Reversing the above, the receiver 200 de-interleaves 201 the received data. The received primary encoded vector c0' is decoded by the primary decoder 202, resulting in a received primary input vector u0'. The received secondary set of modulated vectors c1'-c6' are then demodulated by the demodulator 203 based on the received primary input vector u0'. The resulting secondary set of demodulated vectors v1'-v6' is processed through the secondary decoder 204 to produce a received secondary set of input vectors u1'-u7'. Note that if the received primary encoded vector c0' has been corrupted beyond the correction capabilities of the primary decoder 202, demodulation of the received secondary set of modulated vectors c1'-c6' will be corrupted due to errors found in the received primary input vector u0', and the errors then resulting in the received secondary set of input vectors u1'-u6' will be sufficient to induce error mitigation by the receiver 200. Assuming, however, that the received primary input vector u0' has been correctly received, the receiver 200, due to the use of perfect codes, will not induce error mitigation to counter any errors already present in the set of input vectors u0-u7.
One possible solution to this problem is to avoid the need for an indication and to replace the uncorrectable portion with a representation of an audio pattern chosen so as to minimize audio degradation when properly decoded. Message portions representing silence are often used for this purpose. The representations of silence can be chosen such that message synchronization is maintained. However, the use of encryption techniques, as is often the case in digital communication systems, causes representations of silence to be decrypted into representations of random noise, thereby frustrating the attempt to minimize audio degradation.
Still other solutions could be devised in which separate indicators, aside from the codewords themselves, could be transmitted. However, these solutions require additional use of scarce bandwidth resources over the communication links, which is often not feasible. Therefore, a need exists for a method whereby uncorrectable errors occurring in a message, despite the use of a perfect error correction code, can be indicated to the target of the message. Such a method should allow message synchronization to be maintained without the use of additional bandwidth.